<?php

   require_once('db.php');

   //AlumnoTable
   function alumnotable_fetchAll() {
      return select("SELECT * FROM alumnos");
   }
   function getAlumno($matricula) {
      return select("SELECT * FROM alumnos WHERE matricula = $matricula");
   }
   function getlastAlumno() {
      return select("SELECT * FROM alumnos ORDER BY matricula DESC LIMIT 1");
   }
   function deleteAlumno($matricula) {
      execute_statement("DELETE FROM alumnos WHERE matricula = $matricula");
   }
   function insertAlumno() {
      execute_statement("INSERT INTO alumnos VALUES(default,default)");
   }
   function updateAlumno($matricula, $fecha_ingreso) {
      execute_statement("UPDATE alumnos SET fecha_ingreso = $fecha_ingreso WHERE matricula = $matricula");
   }
   function alumnotable_getMissingIDs() {
      return select("SELECT A.matricula FROM alumnos A LEFT JOIN usuarios U ON A.matricula = U.matricula WHERE U.matricula is null");
   }

   //ProfesorTable
   function profesortable_fetchAll() {
      return select("SELECT * FROM profesores");
   }
   function getProfesor($id) {
      return select("SELECT * FROM profesores WHERE id = $id");
   }
   function getlastProfesor() {
      return select("SELECT * FROM profesores ORDER BY id DESC LIMIT 1");
   }
   function deleteProfesor($id) {
      execute_statement("DELETE FROM profesores WHERE id = $id");
   }
   function insertProfesor() {
      execute_statement("INSERT INTO profesores VALUES(default,default)");
   }
   function updateProfesor($id, $fecha_ingreso) {
      execute_statement("UPDATE profesores SET fecha_ingreso = $fecha_ingreso WHERE id = $id");
   }
   function profesortable_getMissingIDs() {
      return select("SELECT P.id FROM profesores P LEFT JOIN usuarios U ON P.id = U.id_profesor WHERE U.id_profesor is null");
   }

   //FuncionarioTable
   function funcionariotable_fetchAll() {
      return select("SELECT * FROM funcionarios");
   }
   function getFuncionario($id) {
      return select("SELECT * FROM funcionarios WHERE id = $id");
   }
   function getlastFuncionario() {
      return select("SELECT * FROM funcionarios ORDER BY id DESC LIMIT 1");
   }
   function deleteFuncionario($id) {
      execute_statement("DELETE FROM funcionarios WHERE id = $id");
   }
   function insertFuncionario() {
      execute_statement("INSERT INTO funcionarios VALUES(default,default)");
   }
   function updateFuncionario($id, $fecha_ingreso) {
      execute_statement("UPDATE funcionarios SET fecha_ingreso = $fecha_ingreso WHERE id = $id");
   }
   function funcionariotable_getMissingIDs() {
      return select("SELECT F.id FROM funcionarios F LEFT JOIN usuarios U ON F.id = U.id_funcionario WHERE U.id_funcionario is null");
   }

   //UsuarioTable
   function usuariotable_fetchAll() {
      return select("SELECT * FROM usuarios");
   }
   function getUsuario($id) {
      return select("SELECT * FROM usuarios WHERE id = $id");
   }
   function getUsuarioByUserName($username) {
      return select("SELECT * FROM usuarios WHERE username = '$username'");
   }
   function searchUsersByName($name, $lastname) {
      return select("SELECT * FROM usuarios WHERE nombre ilike '%$name%' AND apellido ilike '%$lastname%'");
   }
   function insertUsuario($id, $id_profesor, $matricula, $id_funcionario, $username, $password,
                          $nombre, $apellido, $sexo, $domicilio, $mail, $telefono, $estado_civil,
                          $fecha_nacimiento, $lugar_nacimiento, $nacionalidad) {

      if (is_null($id_profesor) || $id_profesor == '') $id_profesor = 'null';
      if (is_null($matricula) || $matricula == '') $matricula = 'null';
      if (is_null($id_funcionario) || $id_funcionario == '') $id_funcionario = 'null';
      $statement  = "INSERT INTO usuarios VALUES(default, $id_profesor, $matricula, ";
      $statement .= "$id_funcionario, '$username', '$password', '$nombre', '$apellido', ";
      $statement .= "'$sexo', '$domicilio', '$mail', '$telefono', '$estado_civil', ";
      $statement .= "'$fecha_nacimiento', '$lugar_nacimiento', '$nacionalidad')";

      execute_statement($statement);
   }
   function updateUsuario($id, $id_profesor, $matricula, $id_funcionario, $username, $password,
                          $nombre, $apellido, $sexo, $domicilio, $mail, $telefono, $estado_civil,
                          $fecha_nacimiento, $lugar_nacimiento, $nacionalidad) {

      if (is_null($id_profesor) || $id_profesor == '') $id_profesor = 'null';
      if (is_null($matricula) || $matricula == '') $matricula = 'null';
      if (is_null($id_funcionario) || $id_funcionario == '') $id_funcionario = 'null';
      $statement  = "UPDATE usuarios SET id_profesor = $id_profesor, matricula = $matricula, ";
      $statement .= "id_funcionario = $id_funcionario, username = '$username', ";
      $statement .= "password = '$password', nombre = '$nombre', apellido = '$apellido', ";
      $statement .= "sexo = '$sexo', domicilio = '$domicilio', mail = '$mail', ";
      $statement .= "telefono = '$telefono', estado_civil = '$estado_civil', ";
      $statement .= "fecha_nacimiento = '$fecha_nacimiento', ";
      $statement .= "lugar_nacimiento = '$lugar_nacimiento', ";
      $statement .= "nacionalidad = '$nacionalidad' WHERE id = $id";

      /*$handle = fopen('test.txt','a');
      fwrite($handle,$statement);
      fclose($handle);*/
      execute_statement($statement);
   }
   function deleteUsuario($id) {
      execute_statement("DELETE FROM usuarios WHERE id = $id");
   }


?>
